package com.atguigu.product.service;

import com.atguigu.param.ProductHotParam;
import com.atguigu.param.ProductIdsParam;
import com.atguigu.param.ProductPromoParam;
import com.atguigu.pojo.Product;
import com.atguigu.utils.R;

import java.util.List;

/**
 * @author 张三禾
 * @create 2023-03-12 12:28
 * @Description
 */
public interface ProductService {
    /**
     * 根据单类别名称查询热门药品，最多7条数据
     * @param categoryName
     * @return
     */
    R promo(String categoryName);

    /**
     * 多类别热门药品查询 根据类别名称集合! 至多查询7条!
     * @param productHotParam 类别名称集合
     * @return R
     */
    R hots(ProductHotParam productHotParam);

    /**
     * 查询类别商品集合
     * @return
     */
    R clist();

    /**
     * 通用性的业务!
     * 传入了类别id,根据id查询并且分页
     * 没有传入类别的id! 查询全部!
     *
     * @param productIdsParam
     * @return
     */
    R byCategory(ProductIdsParam productIdsParam);

    /**
     * 根据商品id,查询商品详情信息
     * @param productID
     * @return
     */
    R detail(Integer productID);

    /**
     * 查询商品对应的图片详情集合
     * @param productID
     * @return
     */
    R pictures(Integer productID);

    /**
     * 搜索服务调用,获取全部商品数据!
     * 进行同步!
     * @return 商品数据集合
     */
    List<Product> allList();
}
